/**
 * 登录页面脚本
 */

// DOM元素
const usernameInput = document.getElementById('username');
const passwordInput = document.getElementById('password');
const rememberCheckbox = document.getElementById('remember');
const loginBtn = document.querySelector('.login-btn');

// 后端API地址
const API_URL = '/user/login'; // 替换为实际的后端API地址

// 页面加载时检查是否有保存的用户名
document.addEventListener('DOMContentLoaded', function() {
    // 检查本地存储中是否有保存的用户名
    const savedUsername = localStorage.getItem('savedUsername');
    if (savedUsername) {
        usernameInput.value = savedUsername;
        rememberCheckbox.checked = true;
    }
});

/**
 * 登录函数
 */
function login() {
    // 获取用户输入
    const username = usernameInput.value.trim();
    const password = passwordInput.value.trim();
    
    // 简单的输入验证
    if (!username) {
        showToast('请输入用户名');
        return;
    }
    
    if (!password) {
        showToast('请输入密码');
        return;
    }
    
    // 显示加载状态
    loginBtn.textContent = '登录中...';
    loginBtn.disabled = true;
    
    // 准备请求数据
    const loginData = {
        username: username,
        password: password
    };
    
    // 发送POST请求到后端
    fetch(API_URL, {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json'
        },
        body: JSON.stringify(loginData)
    })
    .then(response => {
        // 检查响应状态
        if (!response.ok) {
            throw new Error('网络响应异常');
        }
        return response.json();
    })
    .then(result => {
        // 根据后端R<T>格式处理响应
        // code: 1成功，0和其它数字为失败
        if (result.code === 1) {
            // 保存用户名到本地存储（如果选择了"记住我"）
            if (rememberCheckbox.checked) {
                localStorage.setItem('savedUsername', username);
            } else {
                localStorage.removeItem('savedUsername');
            }
            
            // 如果服务器返回了token，保存它（假设data中包含token）
            if (result.data && result.data.token) {
                localStorage.setItem('authToken', result.data.token);
            }
            
            // 显示成功提示
            showToast('登录成功');
            
            // 登录成功后跳转到首页
            setTimeout(() => {
                window.location.href = '/demo/index/index.html';
            }, 1000);
        } else {
            // 登录失败，显示错误信息
            showToast(result.msg || '用户名或密码错误');
            loginBtn.textContent = '登录';
            loginBtn.disabled = false;
        }
    })
    .catch(error => {
        // 处理网络错误
        console.error('登录请求失败:', error);
        showToast('登录失败，请检查网络连接');
        loginBtn.textContent = '登录';
        loginBtn.disabled = false;
    });
}

/**
 * 显示提示消息
 * @param {string} message - 要显示的消息
 */
function showToast(message) {
    // 检查是否已存在toast元素
    let toast = document.querySelector('.toast');
    
    // 如果不存在，创建一个新的
    if (!toast) {
        toast = document.createElement('div');
        toast.className = 'toast';
        document.body.appendChild(toast);
    }
    
    // 设置消息并显示
    toast.textContent = message;
    toast.classList.add('show');
    
    // 2秒后隐藏
    setTimeout(() => {
        toast.classList.remove('show');
    }, 2000);
}

// 为输入框添加回车键登录功能
passwordInput.addEventListener('keypress', function(e) {
    if (e.key === 'Enter') {
        login();
    }
}); 